package com.fast.alden.data.model;

import jakarta.persistence.Entity;
import jakarta.persistence.EnumType;
import jakarta.persistence.Enumerated;
import jakarta.persistence.Lob;
import lombok.Getter;
import lombok.Setter;

import java.time.LocalDateTime;

/**
 * 操作日志
 */
@Getter
@Setter
@Entity
public class SysOperationLog extends BaseEntity {
    /**
     * 标题
     */
    private String title;
    /**
     * 类型
     */
    @Enumerated(EnumType.STRING)
    private SysOperationType type;
    /**
     * IP
     */
    private String ip;
    /**
     * 请求URL
     */
    @Lob
    private String url;
    /**
     * 请求方法
     */
    private String method;
    /**
     * Controller方法
     */
    private String handlerMethod;
    /**
     * 操作时间
     */
    private LocalDateTime operationTime;
    /**
     * 消耗时间，单位：毫秒
     */
    private Long spendTime;
    /**
     * 是否操作成功
     */
    private Boolean success;
    /**
     * 错误信息
     */
    @Lob
    private String message;
    /**
     * 操作用户ID
     */
    private Long userId;
    /**
     * 操作用户名
     */
    private String username;
}
